home *** CD-ROM | disk | FTP | other *** search
/ Precision Software Appli…tions Silver Collection 3 / Precision Software Applications Silver Collection Volume Three (PSM) (1993).iso / drivers / tboard31.exe / FM.DOC < prev    next >
Text File  |  1992-01-23  |  4KB  |  141 lines

  1. FM - 3812 Resident Driver 
  2. Substitute for "sound.com"
  3.  
  4. Syntax
  5.  
  6.     fm [-iXX] [-m] [-h] [insfile]
  7.  
  8. Options
  9.  
  10.     -iXX    - XX= interrupt number to use (hex) (default: 65h)
  11.     -m    - install 80x86 machine-specific code 
  12.     -h    - use high memory for buffer
  13.     insfile    - file containing instrument definitions
  14.  
  15.     Note: these options are planned, not implemented
  16.  
  17.  
  18. Operation 
  19.  
  20. This program is a TSR that installs into interrupt 65h and handles 
  21. the function calls as specified in the 1987 Ad Lib Synthesizer Card
  22. Programmer's Manual.
  23.  
  24. Run the program fm.com to load the driver.  The program will not load
  25. more than once unless interrupt 65h is intercepted by another program
  26. that does not have a valid signature.  
  27.  
  28.  
  29. Auxiliary Programs
  30.  
  31.     A program can be written to load the queue and terminate 
  32.     before turning the driver on.
  33.  
  34. The "pmode.com" and "mmode.com" programs switch the card into 
  35. percussive and melodic modes, respectively.  
  36.  
  37. The programs "qon.com" and "qofff.com" turn on and off the driver.  
  38.  
  39.     If you wish to remove the TSR from memory, first run "qoff" 
  40.     to turn the driver off in order to reset the clock timer to 
  41.     its normal speed;  then, release the memory.
  42.  
  43.     Disassembly of these programs will show you that they
  44.     are simply function calls to interrupt 65h.
  45.  
  46. Defects
  47.  
  48. The main defect with the program is that the buffer size is not 
  49. large enough.
  50.  
  51. The program can not handle a very fast tempo;  the "pinkpan1.rol"
  52. song will demonstrate this.
  53.  
  54.  
  55. Internal
  56.  
  57. Interrupt Service Functions - * indicates currently implemented
  58.  
  59. F#    Definition
  60.  
  61. 0*    Initialize; set volume to 100%, set pitch to 0, 
  62.         set melodic mode, set timbre for all voices
  63.         to piano, empty queues, and set tempo to 90 bpm.
  64.  
  65. 2    Set Relative Time Start;
  66.  
  67. 3    Set State; either 1, active, or 0, stopped.
  68.  
  69. 4    Get State; either 1, playing, or 0, complete or stopped.
  70.  
  71. 5    Empty queues; silence all voices, stay active.
  72.  
  73. 6    Set Mode; set melodic or percussive, set volume to 100%,
  74.         set timbre for all voices to piano, set pitch to 0.
  75.  
  76. 7    Get Mode; return 0 for melodic, 1 for percussive.
  77.  
  78. 8    Set Volume at Time.
  79.  
  80. 9    Set Tempo at Time.
  81.  
  82. 10    Set Transpose;  immediately affect all voices by specified
  83.         number of semitones.
  84.  
  85. 11    Get Transpose.
  86.  
  87. 12    Set Active Voice.
  88.  
  89. 13    Get Active Voice.
  90.  
  91. 14    Play Note with Delay; play note of pitch for length, set delay.
  92.  
  93. 15    Play Note without Delay; play note of pitch for length.
  94.  
  95. 16    Set Voice Timbre at Time.
  96.  
  97. 17    Set Pitch at Time; affect all voices.
  98.  
  99. 18    Set Ticks per Beat;  all notes should fall on multiple of 
  100.         1/TickBeat, and obey: 18.2 <= (TickBeat * Tempo / 60).
  101.  
  102. 19*    Direct Note On;  play voice at pitch.
  103.  
  104. 20*    Direct Note Off;  stop voice.
  105.  
  106. 21*    Direct Set Timbre;  set timbre for voice.
  107.     
  108.  
  109. Development Notes
  110.  
  111. 01/23/92 - Corrected delta pitch effect.
  112.  
  113. 01/22/92 - Beta version 3.0 released.  Fully functional.  Queue size 
  114.     too small.
  115.  
  116.  
  117. 01/09/92 - A defect with the combination of the timer and music interrupt 
  118.     routines caused the computer to enter an endless loop, with 
  119.     interrupts disabled: lock-up.  Version 2.1 corrects this.
  120.  
  121. 01/07/92 - Additional functions 8000h, 8001h return pointers to internal 
  122.     data structures and the count of voices;  8002h and 8003h start
  123.     and stop background fm sounds, as with the fmfun.exe program.
  124.  
  125.         mov si, 8002h        ; start background sound
  126.         int 65h
  127.  
  128.         mov si, 8003h        ; stop background sound
  129.         int 65h
  130.  
  131. 12/30/91 - Only the Reset Chip and Direct Note On/Off and Set Timbre
  132.     functions are implemented.  All other functions simply return 0.
  133.     Otherwise, fully resident with proper signature placement and
  134.     checking.
  135.  
  136.     Supplied test program fmfun.exe allows manipulation of voice
  137.     parameters and pitch;  the tab key causes the program to begin
  138.     reading memory at 0:0, determining a pitch and length for each
  139.     voice.
  140.  
  141.